/**
 * @file           : send_process.cpp
 * @author         : fwy
 * @brief          :
 * @email          : 2643660853@qq.com
 * @date           : 23-1-18 上午2:25
 * @todo           : 需要用类封装
 */

#include <ros/ros.h>
#include "geometry_msgs/TwistStamped.h"
#include "msg_process/track_data.h"
#include "msg_process/send_data.h"
#include "std_msgs/String.h"
#include "serial_data.h"
#include <vector>
TransferData serial_send_data;
std::vector<std::string> yolo_datas; // 存储位姿信息的数组
// path_sub的回调函数
void pathDataCallBack(const std_msgs::String yolo_data)
{
    ROS_WARN("...............yolo_msg ：%s........", yolo_data.data.c_str());
    // 识别信息
    yolo_datas.emplace_back(yolo_data.data);
    if (yolo_datas.size() > 12)
        yolo_datas.pop_back();
    int count = 0;
    for (int i = 0; i < yolo_datas.size();i++)
    {
        if (yolo_data.data.c_str() == std::string("good apple"))
        {
            ROS_WARN("+++++++++++++is good apple++++++++++++++");
            count += 1;
        }
    }

    if (count > 8)
        serial_send_data.data_u8[0] = 1;
    else
        serial_send_data.data_u8[0] = 0;
    ROS_WARN("---is_grab :%d----", serial_send_data.data_u8[0]);
    serialdata.write(serial_send_data);
}

int main(int argc, char **argv)
{
    // 初始化节点
    ros::init(argc, argv, "send_process");
    ros::NodeHandle nh;
    // 数据初始化
    yolo_datas.reserve(12);
    serial_send_data.data_u8 = {0};
    ros::Subscriber yolo_sub = nh.subscribe<std_msgs::String>("/yolo_msg", 1, pathDataCallBack);
    ros::spin();
}
